Simple communication protocols such as I2C (Inter-Integrated Circuit) are commonly used for low-speed communication between integrated circuits due to their simplicity, which make them cheap to implement, both due to the small amount of time needed to design hardware, firmware, and software to implement the protocol as well as the small number of components required to implement it, and the small footprint of those components.
One drawback of such a system is that small differences in the physical environment (such as a different capacitance) can lead to variations in performance of the protocol in a way that may not be addressed by the protocol specification.